<?php

//Clase para el manejo de las acciones
class acciones {

    // Función que se encarga de cargar la grilla
    // Retornardo los datos en formato JSON
    // PARAMETROS: $conexion: Recibe el objeto conexión
    function data($conexion, $start, $limit) {

        //Realizo la consulta para obtener todos los registros
        $sqlTot = "select * from login ";

        //Ejecuto la consulta
        $resultsTot = mysql_query($sqlTot, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$resultsTot) {
            $mensaje = 'Consulta no válida: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Realizo la consulta
        $sql = "SELECT * FROM login ORDER BY usuario ASC LIMIT " . $start . "," . $limit;

        //Ejecuto la consulta
        $results = mysql_query($sql, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Consulta no válida: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Cuento la cantidad total de registros de la tabla
        $nTot = mysql_num_rows($resultsTot);

        //Creo un array que contendra los valores de la grilla
        $data = array();

        //Recorro la consulta
        while ($row = mysql_fetch_object($results)) {

            //Remplazo el 1 por el si y el 0 por no (isadmin)
            if ($row->isadmin == 1) {
                $row->isadmin = 'si';
            } else {
                $row->isadmin = 'no';
            }

            //Cargo el dato en el array
            $data [] = $row;
        }

        //Libero memoria
        mysql_free_result($results);

        //Paso el array
        return '{"totalCount": "' . $nTot . '", "Users":' . json_encode($data) . '}';
    }

    // Inserto valores en la tabla categoría
    // PARAMETROS: $conexion: Recibe el objeto conexión
    // 	           $obj: Recibe el objeto funciones
    function insertCateg($conexion, $obj) {

        //Genero el query para buscar el id más alto
        $sql = "SELECT max(id) as id from login";

        //Ejecuto el query
        $results = mysql_query($sql);

        //Creo el array
        $arr = mysql_fetch_assoc($results);

        //Tomo el valor
        $id = $arr['id'];

        //Incremento en uno el valor
        $id++;

        //Libero memoria
        mysql_free_result($results);

        //Tomo los valores del formulario
        $usuario = $_POST['usuario'];
        $isadmin = strtolower($_POST['isadmin']);
        $pass = $_POST['pass'];
        $pass1 = $_POST['pass1'];

        //Quito caracteres Especiales
        $usuario = $obj->sacarAcentos($usuario);
        
        //Verifico si encontro el usuario
        $sqlVerif = "SELECT * FROM login WHERE usuario = '" . $usuario . "'";
        
        //Ejecuto la consulta
        $resultsV = mysql_query($sqlVerif, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$resultsV) {
            $mensaje = 'Error al verificar si existe el registro: ' . mysql_error() . "\n";
            die($mensaje);
        }
        
        //Verifico si encontro el apellido o el socio
        if(mysql_num_rows($resultsV) > 0){
            die("Ya se encuentra ingresado en la base el usuario: " .$usuario);
        }
        
        //Verifico si ambas password son iguales
        if ($pass != $pass1) {
            $js = "<script> window.location = '../php/AbmNewUs.php';  </script>";
            die($js);
        } else {

            //Encripto la contraseña
            $pass = $obj->encriptar($pass);

            // Verifico si pago o no 
            // convirtiendo a true o false (isadmin)
            if ($isadmin == 'si') {
                $isadmin = true;
            } else {
                $isadmin = 0;
            }

            //Realizo la consulta
            $sql = "INSERT INTO login (id, usuario, pass, isadmin) values('" . $id . "', '" . $usuario . "', '" . $pass . "', " . $isadmin . ")";
            //Ejecuto la consulta
            $results = mysql_query($sql, $conexion);

            //Verifico si se realizo la consulta bien
            if (!$results) {
                $mensaje = 'Error al insertar el registro: ' . mysql_error() . "\n";
                die($mensaje);
            }
        }
    }

    // Modifica valores en la tabla categoria
    // PARAMETROS: $conexion: Recibe el objeto conexión
    // 			   $obj: Recibe el objeto funciones
    function updateCateg($conexion, $obj) {

        //Tomo los valores del formulario
        $id = $_POST['id'];
        $usuario = $_POST['usuario'];
        $isadmin = strtolower($_POST['isadmin']);
        $pass = $_POST['pass'];

        //Quito caracteres Especiales
        $usuario = $obj->sacarAcentos($usuario);

        //Encripto la contraseña
        $pass = $obj->encriptar($pass);

        // Verifico si pago o no 
        // convirtiendo a true o false (isadmin)
        if ($isadmin == 'si') {
            $isadmin = true;
        } else {
            $isadmin = 0;
        }

        //Creo la consulta
        $sql = "UPDATE login SET usuario = '" . $usuario . "', pass = '" . $pass . "', isadmin = " . $isadmin . " WHERE id = '" . $id . "'";
        //Ejecuto la consulta
        $results = mysql_query($sql, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Error al modificar el registro: ' . mysql_error() . "\n";
            die($mensaje);
        }
    }

    // Elimina un registro de la tabla delete
    // PARAMETROS: $conexion: Recibe el objeto conexión
    // 			   $id: Recibe el id a elimnar
    function deleteCateg($conexion, $id) {

        //Creo la consulta
        $sql = "DELETE FROM login where id = '" . $id . "'";
        //Ejecuto la consulta
        $results = mysql_query($sql, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Error al eliminar el registro: ' . mysql_error() . "\n";
            die($mensaje);
        }
    }

    //Elimina todos los registros de la BD
    function deleteAll($conexion) {
        //Elimino los registros de la categoria
        $sql = "DELETE FROM login";

        //Tratamiento
        try {
            //Ejecuto la consulta
            $results = mysql_query($sql, $conexion);

            //Verifico si se realizo la consulta bien
            if (!$results) {
                $mensaje = 'Consulta no valida: ' . mysql_error() . "\n";
                die($mensaje);
            }
            //En caso de error
        } catch (Exception $e) {
            //Informo el error
            die("Error al ejecutar la consulta " . mysql_error() . "\n");
        }

        //Inserto los dos principales usuarios para que no pinche ciertas pantallas
        $name1 = "Bivona Oscar";
        $pass1 = md5('OSKY');
        $sqlInsert1 = "INSERT INTO login (id, usuario, pass, isadmin, superAdmin) VALUES ('1', '$name1', '$pass1', '1', '1')";
        $results1 = mysql_query($sqlInsert1, $conexion);

        if (!$results1) {
                $mensaje = 'Consulta 1 no valida: ' . mysql_error() . "\n";
                die($mensaje);
        }

        $name2 = "martin";
        $pass2 = md5('martin');
        $sqlInsert2 = "INSERT INTO login (id, usuario, pass, isadmin, superAdmin) VALUES ('2', '$name2', '$pass2', '1', '0')";
        $results2 =mysql_query($sqlInsert2, $conexion);

        if (!$results2) {
                $mensaje = 'Consulta 2 no valida: ' . mysql_error() . "\n";
                die($mensaje);
        }
    }

}
?>

<?php

/* Agregamos las funciones */
include "funciones.php";

//Creo el objeto funciones
$obj = new funciones;
//Conecto a MySql
$conexion = $obj->conexion();

//Instancio la clase
$acc = new acciones();

//Verifico si esta definida el parámetro action
if (isset($_POST['action']) || isset($_GET['action'])) {

    //Verifico si es POST o GET
    if (isset($_POST['action'])) {
        $accion = $_POST['action'];
    } else {
        $accion = $_GET['action'];
    }

    //Verifico la accion
    switch ($accion) {
        //Si la acción es insert
        case 'insert':
            $acc->insertCateg($conexion, $obj);
            //Redirecciono
            $js = "<script> window.location = '../php/AbmNewUs.php';  </script>";
            die($js);
            break;

        //Si la acción es Update
        case 'update':
            $acc->updateCateg($conexion, $obj);
            //Redirecciono
            $js = "<script> window.location = '../php/AbmNewUs.php';  </script>";
            die($js);
            break;

        //Si la acción es delete
        case 'delete':
            //Tomo el valor del id
            $id = $_POST['id'];

            $acc->deleteCateg($conexion, $id);
            //Redirecciono
            $js = "<script> window.location = '../php/AbmNewUs.php';  </script>";
            die($js);
            break;

        //Elimina todos los registros
        case 'deleteAll':
            $acc->deleteAll($conexion);
            $js = "<script> window.location = '../php/AbmNewUs.php';  </script>";
            die($js);
            break;

        //Verifica si tiene permisos de admin master para eliminar todos los registros
        case $accion == 'permisos':
            $json = $obj->permisos($conexion);
            echo $json;
            break;
    }
} {
    if (isset($_GET['start']) && isset($_GET['limit'])) {
        //Ejecuto el método y obtendo el resultado JSON
        $datos = $acc->data($conexion, $_GET['start'], $_GET['limit']);
        //Caego en la grilla
        echo $datos;
    }
}

//Cierro la conexión
$obj->cerrarConn($conexion);
?>